# 在test函数执行之前打印日志显示为: 函数名 + 正在执行中....

#打印日志不允许动原函数 原函数的参数业不需要改变 原函数的返回值也不变
def test(a,b,c):
    for i in range(4):
        for j in range(2*i+1):
            print("*",end="")
        print()
    print(a,b,c)
    return a+b+c
def test2(a,b,c):
    for i in range(4):
        for j in range(7):
            print("*",end="")
        print()
    print(a, b, c)
    return a+b+c

def wrapper(fun,*args,**kwargs):
    print(fun.__name__ + "正在执行中....")
    return fun(*args,**kwargs)


#  但是!!! 改变了函数的调用形式
q = wrapper(test,1,2,3)
p = wrapper(test2,1,2,c=9)
print(q,p)